package com.ruoyi.demo;

import cn.hutool.core.lang.Console;
import com.ruoyi.common.utils.StringUtils;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Function;

/**
 * <简述>
 * <详细描述>
 *
 * @author syf
 * @date 2024年08月14日 10:26
 */
public class TestStringUtils {
    public static void main(String[] args) {
        test();

    }

   static void test(){
        // 判断是否为空
       String hello = StringUtils.blankToDefault("1", "hello" );
       Console.log("blankToDefault->{}", hello);
       String hell1o = StringUtils.blankToDefault(null, "hello" );
       Console.log("blankToDefault->{}", hell1o);
       // 判断是否为空
       Console.log("isNotEmpty->{}", StringUtils.isEmpty("1"));
       Console.log("isNotEmpty->{}", StringUtils.isEmpty(""));
       Console.log("isNotEmpty->{}", StringUtils.isEmpty(null));
       //去除前后空格
       Console.log("trim->{}", StringUtils.trim("  hello  "));

       //截取字符串 前闭后开规则
       Console.log("substring->{}", StringUtils.substring("hello", 1, 2));

       //格式化文本
       Console.log("format->{}", StringUtils.format("hello {}", "world"));
       Console.log("format->{}", StringUtils.format("hello \\{}", "world"));
       //是否http
       Console.log("ishttp->{}", StringUtils.ishttp("http://www.baidu.com"));


       //转驼峰
       Console.log("toCamelCase->{}", StringUtils.toCamelCase("hello_world"));
       //转下划线
       Console.log("toUnderScoreCase->{}", StringUtils.toUnderScoreCase("helloWorld"));


       //分割 返回数组
       Console.log("splitList->{}", StringUtils.splitList("1,2,3"));
       //转换数组
       Console.log("str2List->{}", StringUtils.str2List("1,2,3", ",", true, true));
       //转换集合
       Console.log("str2Set->{}", StringUtils.str2Set("1,2,3", ","));

       //匹配字符
       Console.log("isMatch->{}", StringUtils.isMatch("query/**", "query/allList"));
       //匹配
       Console.log("matches->{}", StringUtils.matches("hello", Arrays.asList("hello", "world")));
       //是否包含 第一个参数是否在第二个参数里面
       Console.log("splitTo->{}", StringUtils.inStringIgnoreCase("hello", "hello", "world"));
       //是否包含
       Console.log("containsAnyIgnoreCase->{}", StringUtils.containsAnyIgnoreCase("hello", "hello", "world"));

       //填充  左边填充
       Console.log("padl->{}", StringUtils.padl(1, 2));
       //填充  左边填充 自定义字符
       Console.log("padl->{}", StringUtils.padl("1", 2, '*'));

       //分割  返回集合
       Console.log("padl->{}", StringUtils.splitTo("1,2,3,", ",", new Function<Object, Object>() {
           @Override
           public Object apply(Object o) {
               return o + "拼接字符";
           }
       }));



   }
}
